home *** CD-ROM | disk | FTP | other *** search
/ Freelog 125 / Freelog_MarsAvril2015_No125.iso / Musique / Quod Libet / quodlibet-3.3.0-installer.exe / bin / encodings / utf_16.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2014-12-31  |  5KB  |  135 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.7)
  3.  
  4. """ Python 'utf-16' Codec
  5.  
  6.  
  7. Written by Marc-Andre Lemburg (mal@lemburg.com).
  8.  
  9. (c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
  10.  
  11. """
  12. import codecs
  13. import sys
  14. encode = codecs.utf_16_encode
  15.  
  16. def decode(input, errors = 'strict'):
  17.     return codecs.utf_16_decode(input, errors, True)
  18.  
  19.  
  20. class IncrementalEncoder(codecs.IncrementalEncoder):
  21.     
  22.     def __init__(self, errors = 'strict'):
  23.         codecs.IncrementalEncoder.__init__(self, errors)
  24.         self.encoder = None
  25.  
  26.     
  27.     def encode(self, input, final = False):
  28.         if self.encoder is None:
  29.             result = codecs.utf_16_encode(input, self.errors)[0]
  30.             if sys.byteorder == 'little':
  31.                 self.encoder = codecs.utf_16_le_encode
  32.             else:
  33.                 self.encoder = codecs.utf_16_be_encode
  34.             return result
  35.         return None.encoder(input, self.errors)[0]
  36.  
  37.     
  38.     def reset(self):
  39.         codecs.IncrementalEncoder.reset(self)
  40.         self.encoder = None
  41.  
  42.     
  43.     def getstate(self):
  44.         if self.encoder is None:
  45.             return 2
  46.  
  47.     
  48.     def setstate(self, state):
  49.         if state:
  50.             self.encoder = None
  51.         elif sys.byteorder == 'little':
  52.             self.encoder = codecs.utf_16_le_encode
  53.         else:
  54.             self.encoder = codecs.utf_16_be_encode
  55.  
  56.  
  57.  
  58. class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
  59.     
  60.     def __init__(self, errors = 'strict'):
  61.         codecs.BufferedIncrementalDecoder.__init__(self, errors)
  62.         self.decoder = None
  63.  
  64.     
  65.     def _buffer_decode(self, input, errors, final):
  66.         if self.decoder is None:
  67.             (output, consumed, byteorder) = codecs.utf_16_ex_decode(input, errors, 0, final)
  68.             if byteorder == -1:
  69.                 self.decoder = codecs.utf_16_le_decode
  70.             elif byteorder == 1:
  71.                 self.decoder = codecs.utf_16_be_decode
  72.             elif consumed >= 2:
  73.                 raise UnicodeError('UTF-16 stream does not start with BOM')
  74.             return (output, consumed)
  75.         return None.decoder(input, self.errors, final)
  76.  
  77.     
  78.     def reset(self):
  79.         codecs.BufferedIncrementalDecoder.reset(self)
  80.         self.decoder = None
  81.  
  82.  
  83.  
  84. class StreamWriter(codecs.StreamWriter):
  85.     
  86.     def __init__(self, stream, errors = 'strict'):
  87.         codecs.StreamWriter.__init__(self, stream, errors)
  88.         self.encoder = None
  89.  
  90.     
  91.     def reset(self):
  92.         codecs.StreamWriter.reset(self)
  93.         self.encoder = None
  94.  
  95.     
  96.     def encode(self, input, errors = 'strict'):
  97.         if self.encoder is None:
  98.             result = codecs.utf_16_encode(input, errors)
  99.             if sys.byteorder == 'little':
  100.                 self.encoder = codecs.utf_16_le_encode
  101.             else:
  102.                 self.encoder = codecs.utf_16_be_encode
  103.             return result
  104.         return None.encoder(input, errors)
  105.  
  106.  
  107.  
  108. class StreamReader(codecs.StreamReader):
  109.     
  110.     def reset(self):
  111.         codecs.StreamReader.reset(self)
  112.         
  113.         try:
  114.             del self.decode
  115.         except AttributeError:
  116.             pass
  117.  
  118.  
  119.     
  120.     def decode(self, input, errors = 'strict'):
  121.         (object, consumed, byteorder) = codecs.utf_16_ex_decode(input, errors, 0, False)
  122.         if byteorder == -1:
  123.             self.decode = codecs.utf_16_le_decode
  124.         elif byteorder == 1:
  125.             self.decode = codecs.utf_16_be_decode
  126.         elif consumed >= 2:
  127.             raise UnicodeError, 'UTF-16 stream does not start with BOM'
  128.         return (object, consumed)
  129.  
  130.  
  131.  
  132. def getregentry():
  133.     return codecs.CodecInfo(name = 'utf-16', encode = encode, decode = decode, incrementalencoder = IncrementalEncoder, incrementaldecoder = IncrementalDecoder, streamreader = StreamReader, streamwriter = StreamWriter)
  134.  
  135.